home *** CD-ROM | disk | FTP | other *** search
- From: Mike Brennan <brennan@boeing.com>
- Subject: v02i031: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02d/4
- Newsgroups: comp.sources.reviewed
- Approved: csr@calvin.dgbt.doc.ca
-
- Submitted-by: Mike Brennan <brennan@boeing.com>
- Posting-number: Volume 2, Issue 31
- Archive-name: mawk/patch02d
- Patch-To: mawk: Volume 1, Issue 50-68
-
- #!/bin/sh
- # this is part.04 (part 4 of a multipart archive)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file Xparse.c continued
- #
- if test ! -r _shar_seq_.tmp; then
- echo 'Please unpack part 1 first!'
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 4; then
- echo Please unpack part "$Scheck" next!
- exit 1
- else
- exit 0
- fi
- ) < _shar_seq_.tmp || exit 1
- if test ! -f _shar_wnt_.tmp; then
- echo 'x - still skipping Xparse.c'
- else
- echo 'x - continuing file Xparse.c'
- sed 's/^X//' << 'SHAR_EOF' >> 'Xparse.c' &&
- break;
- case 53:
- #line 322 "parse.y"
- { patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
- break;
- case 55:
- #line 327 "parse.y"
- { code1(_CAT) ; }
- break;
- case 56:
- #line 331 "parse.y"
- { yyval.start = code_ptr ; code2(_PUSHD, yyvsp[0].ptr) ; }
- break;
- case 57:
- #line 333 "parse.y"
- { yyval.start = code_ptr ; code2(_PUSHS, yyvsp[0].ptr) ; }
- break;
- case 58:
- #line 335 "parse.y"
- { check_var(yyvsp[0].stp) ;
- X yyval.start = code_ptr ;
- X if ( is_local(yyvsp[0].stp) )
- X { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
- X else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
- X }
- break;
- case 59:
- #line 343 "parse.y"
- { yyval.start = yyvsp[-1].start ; }
- break;
- case 60:
- #line 347 "parse.y"
- { yyval.start = code_ptr ; code2(_MATCH0, yyvsp[0].ptr) ; }
- break;
- case 61:
- #line 350 "parse.y"
- { code1(_ADD) ; }
- break;
- case 62:
- #line 351 "parse.y"
- { code1(_SUB) ; }
- break;
- case 63:
- #line 352 "parse.y"
- { code1(_MUL) ; }
- break;
- case 64:
- #line 353 "parse.y"
- { code1(_DIV) ; }
- break;
- case 65:
- #line 354 "parse.y"
- { code1(_MOD) ; }
- break;
- case 66:
- #line 355 "parse.y"
- { code1(_POW) ; }
- break;
- case 67:
- #line 357 "parse.y"
- { yyval.start = yyvsp[0].start ; code1(_NOT) ; }
- break;
- case 68:
- #line 359 "parse.y"
- { yyval.start = yyvsp[0].start ; code1(_UPLUS) ; }
- break;
- case 69:
- #line 361 "parse.y"
- { yyval.start = yyvsp[0].start ; code1(_UMINUS) ; }
- break;
- case 71:
- #line 366 "parse.y"
- { check_var(yyvsp[-1].stp) ;
- X yyval.start = code_ptr ;
- X code_address(yyvsp[-1].stp) ;
- X
- X if ( yyvsp[0].ival == '+' ) code1(_POST_INC) ;
- X else code1(_POST_DEC) ;
- X }
- break;
- case 72:
- #line 374 "parse.y"
- { yyval.start = yyvsp[0].start ;
- X if ( yyvsp[-1].ival == '+' ) code1(_PRE_INC) ;
- X else code1(_PRE_DEC) ;
- X }
- break;
- case 73:
- #line 381 "parse.y"
- { if (yyvsp[0].ival == '+' ) code1(F_POST_INC ) ;
- X else code1(F_POST_DEC) ;
- X }
- break;
- case 74:
- #line 385 "parse.y"
- { yyval.start = yyvsp[0].start ;
- X if ( yyvsp[-1].ival == '+' ) code1(F_PRE_INC) ;
- X else code1( F_PRE_DEC) ;
- X }
- break;
- case 75:
- #line 392 "parse.y"
- { yyval.start = code_ptr ;
- X check_var(yyvsp[0].stp) ;
- X code_address(yyvsp[0].stp) ;
- X }
- break;
- case 76:
- #line 400 "parse.y"
- { yyval.ival = 0 ; }
- break;
- case 78:
- #line 405 "parse.y"
- { yyval.ival = 1 ; }
- break;
- case 79:
- #line 407 "parse.y"
- { yyval.ival = yyvsp[-2].ival + 1 ; }
- break;
- case 80:
- #line 412 "parse.y"
- { BI_REC *p = yyvsp[-4].bip ;
- X yyval.start = yyvsp[-3].start ;
- X if ( p-> min_args > yyvsp[-1].ival || p->max_args < yyvsp[-1].ival )
- X compile_error(
- X "wrong number of arguments in call to %s" ,
- X p->name ) ;
- X if ( p->min_args != p->max_args ) /* variable args */
- X { code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
- X code2(_BUILTIN , p->fp) ;
- X }
- break;
- case 81:
- #line 423 "parse.y"
- {
- X code1(_PUSHINT) ; code1(0) ;
- X code2(_BUILTIN, yyvsp[0].bip->fp) ;
- X }
- break;
- case 82:
- #line 431 "parse.y"
- { yyval.start = code_ptr ; }
- break;
- case 83:
- #line 435 "parse.y"
- { code2(_PRINT, yyvsp[-4].fp) ; yyval.start = yyvsp[-3].start ;
- X if ( yyvsp[-4].fp == bi_printf && yyvsp[-2].ival == 0 )
- X compile_error("no arguments in call to printf") ;
- X print_flag = 0 ;
- X yyval.start = yyvsp[-3].start ;
- X }
- break;
- case 84:
- #line 443 "parse.y"
- { yyval.fp = bi_print ; print_flag = 1 ;}
- break;
- case 85:
- #line 444 "parse.y"
- { yyval.fp = bi_printf ; print_flag = 1 ; }
- break;
- case 86:
- #line 447 "parse.y"
- { code1(_PUSHINT) ; code1(yyvsp[0].ival) ; }
- break;
- case 87:
- #line 449 "parse.y"
- { yyval.ival = yyvsp[-1].arg2p->cnt ; zfree(yyvsp[-1].arg2p,sizeof(ARG2_REC)) ;
- X code1(_PUSHINT) ; code1(yyval.ival) ;
- X }
- break;
- case 88:
- #line 453 "parse.y"
- { yyval.ival=0 ; code1(_PUSHINT) ; code1(0) ; }
- break;
- case 89:
- #line 457 "parse.y"
- { yyval.arg2p = (ARG2_REC*) zmalloc(sizeof(ARG2_REC)) ;
- X yyval.arg2p->start = yyvsp[-2].start ;
- X yyval.arg2p->cnt = 2 ;
- X }
- break;
- case 90:
- #line 462 "parse.y"
- { yyval.arg2p = yyvsp[-2].arg2p ; yyval.arg2p->cnt++ ; }
- break;
- case 92:
- #line 467 "parse.y"
- { code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
- break;
- case 93:
- #line 474 "parse.y"
- { yyval.start = yyvsp[-1].start ; eat_nl() ; code_jmp(_JZ, (INST*)0) ; }
- break;
- case 94:
- #line 479 "parse.y"
- { patch_jmp( code_ptr ) ; }
- break;
- case 95:
- #line 482 "parse.y"
- { eat_nl() ; code_jmp(_JMP, (INST*)0) ; }
- break;
- case 96:
- #line 487 "parse.y"
- { patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
- break;
- case 97:
- #line 493 "parse.y"
- { eat_nl() ; BC_new() ; }
- break;
- case 98:
- #line 498 "parse.y"
- { yyval.start = yyvsp[-5].start ;
- X code_jmp(_JNZ, yyvsp[-5].start) ;
- X BC_clear(code_ptr, yyvsp[-2].start) ; }
- break;
- case 99:
- #line 504 "parse.y"
- { eat_nl() ; BC_new() ;
- X yyval.start = yyvsp[-1].start ;
- X
- X /* check if const expression */
- X if ( code_ptr - 2 == yyvsp[-1].start &&
- X code_ptr[-2].op == _PUSHD &&
- X *(double*)code_ptr[-1].ptr != 0.0
- X )
- X code_ptr -= 2 ;
- X else
- X {
- X code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
- X code_ptr = yyvsp[-1].start ;
- X code2(_JMP, (INST*)0) ; /* code2() not code_jmp() */
- X }
- X }
- break;
- case 100:
- #line 524 "parse.y"
- {
- X INST *c_addr ; int len ;
- X
- X if ( yyvsp[-1].start != yyvsp[0].start ) /* real test in loop */
- X {
- X yyvsp[-1].start[1].op = code_ptr-(yyvsp[-1].start+1) ;
- X c_addr = code_ptr ;
- X len = code_pop(code_ptr) ;
- X code_ptr += len ;
- X code_jmp(_JNZ, yyvsp[0].start) ;
- X BC_clear(code_ptr, c_addr) ;
- X }
- X else /* while(1) */
- X {
- X code_jmp(_JMP, yyvsp[-1].start) ;
- X BC_clear(code_ptr, yyvsp[0].start) ;
- X }
- X }
- break;
- case 101:
- #line 547 "parse.y"
- {
- X INST *cont_address = code_ptr ;
- X unsigned len = code_pop(code_ptr) ;
- X
- X code_ptr += len ;
- X
- X if ( yyvsp[-2].start != yyvsp[0].start ) /* real test in for2 */
- X {
- X yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
- X len = code_pop(code_ptr) ;
- X code_ptr += len ;
- X code_jmp(_JNZ, yyvsp[0].start) ;
- X }
- X else /* for(;;) */
- X code_jmp(_JMP, yyvsp[0].start) ;
- X
- X BC_clear(code_ptr, cont_address) ;
- X
- X }
- break;
- case 102:
- #line 568 "parse.y"
- { yyval.start = code_ptr ; }
- break;
- case 103:
- #line 570 "parse.y"
- { yyval.start = yyvsp[-1].start ; code1(_POP) ; }
- break;
- case 104:
- #line 573 "parse.y"
- { yyval.start = code_ptr ; }
- break;
- case 105:
- #line 575 "parse.y"
- {
- X if ( code_ptr - 2 == yyvsp[-1].start &&
- X code_ptr[-2].op == _PUSHD &&
- X * (double*) code_ptr[-1].ptr != 0.0
- X )
- X code_ptr -= 2 ;
- X else
- X {
- X code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
- X code_ptr = yyvsp[-1].start ;
- X code2(_JMP, (INST*)0) ;
- X }
- X }
- break;
- case 106:
- #line 591 "parse.y"
- { eat_nl() ; BC_new() ; code_push((INST*)0,0) ; }
- break;
- case 107:
- #line 593 "parse.y"
- { eat_nl() ; BC_new() ;
- X code1(_POP) ;
- X code_push(yyvsp[-1].start, code_ptr - yyvsp[-1].start) ;
- X code_ptr -= code_ptr - yyvsp[-1].start ;
- X }
- break;
- case 108:
- #line 604 "parse.y"
- { check_array(yyvsp[0].stp) ;
- X code_array(yyvsp[0].stp) ;
- X code1(A_TEST) ;
- X }
- break;
- case 109:
- #line 609 "parse.y"
- { yyval.start = yyvsp[-3].arg2p->start ;
- X code1(A_CAT) ; code1(yyvsp[-3].arg2p->cnt) ;
- X zfree(yyvsp[-3].arg2p, sizeof(ARG2_REC)) ;
- X
- X check_array(yyvsp[0].stp) ;
- X code_array(yyvsp[0].stp) ;
- X code1(A_TEST) ;
- X }
- break;
- case 110:
- #line 620 "parse.y"
- {
- X if ( yyvsp[-1].ival > 1 )
- X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
- X
- X check_array(yyvsp[-4].stp) ;
- X if( is_local(yyvsp[-4].stp) )
- X { code1(LAE_PUSHA) ; code1(yyvsp[-4].stp->offset) ; }
- X else code2(AE_PUSHA, yyvsp[-4].stp->stval.array) ;
- X yyval.start = yyvsp[-3].start ;
- X }
- break;
- case 111:
- #line 633 "parse.y"
- {
- X if ( yyvsp[-1].ival > 1 )
- X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
- X
- X check_array(yyvsp[-4].stp) ;
- X if( is_local(yyvsp[-4].stp) )
- X { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
- X else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
- X yyval.start = yyvsp[-3].start ;
- X }
- break;
- case 112:
- #line 645 "parse.y"
- {
- X if ( yyvsp[-2].ival > 1 )
- X { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
- X
- X check_array(yyvsp[-5].stp) ;
- X if( is_local(yyvsp[-5].stp) )
- X { code1(LAE_PUSHA) ; code1(yyvsp[-5].stp->offset) ; }
- X else code2(AE_PUSHA, yyvsp[-5].stp->stval.array) ;
- X if ( yyvsp[0].ival == '+' ) code1(_POST_INC) ;
- X else code1(_POST_DEC) ;
- X
- X yyval.start = yyvsp[-4].start ;
- X }
- break;
- case 113:
- #line 662 "parse.y"
- {
- X yyval.start = yyvsp[-4].start ;
- X if ( yyvsp[-2].ival > 1 ) { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
- X check_array(yyvsp[-5].stp) ;
- X code_array(yyvsp[-5].stp) ;
- X code1(A_DEL) ;
- X }
- break;
- case 114:
- #line 675 "parse.y"
- { eat_nl() ; BC_new() ;
- X yyval.start = code_ptr ;
- X
- X check_var(yyvsp[-3].stp) ;
- X code_address(yyvsp[-3].stp) ;
- X check_array(yyvsp[-1].stp) ;
- X code_array(yyvsp[-1].stp) ;
- X
- X code2(SET_ALOOP, (INST*)0) ;
- X }
- break;
- case 115:
- #line 689 "parse.y"
- {
- X yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
- X BC_clear( code_ptr+3 , code_ptr) ;
- X code_jmp(ALOOP, yyvsp[0].start) ;
- X code_ptr++->ptr = (PTR) ZMALLOC(ALOOP_STATE) ;
- X }
- break;
- case 116:
- #line 704 "parse.y"
- { yyval.start = code_ptr ; code2(F_PUSHA, yyvsp[0].cp) ; }
- break;
- case 117:
- #line 706 "parse.y"
- { check_var(yyvsp[0].stp) ;
- X yyval.start = code_ptr ;
- X if ( is_local(yyvsp[0].stp) )
- X { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
- X else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
- X
- X CODE_FE_PUSHA() ;
- X }
- break;
- case 118:
- #line 715 "parse.y"
- {
- X if ( yyvsp[-1].ival > 1 )
- X { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
- X
- X check_array(yyvsp[-4].stp) ;
- X if( is_local(yyvsp[-4].stp) )
- X { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
- X else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
- X
- X CODE_FE_PUSHA() ;
- X
- X yyval.start = yyvsp[-3].start ;
- X }
- break;
- case 119:
- #line 729 "parse.y"
- { yyval.start = yyvsp[0].start ; CODE_FE_PUSHA() ; }
- break;
- case 120:
- #line 731 "parse.y"
- { yyval.start = yyvsp[-1].start ; }
- break;
- case 121:
- #line 735 "parse.y"
- { field_A2I() ; }
- break;
- case 122:
- #line 738 "parse.y"
- { code1(F_ASSIGN) ; }
- break;
- case 123:
- #line 739 "parse.y"
- { code1(F_ADD_ASG) ; }
- break;
- case 124:
- #line 740 "parse.y"
- { code1(F_SUB_ASG) ; }
- break;
- case 125:
- #line 741 "parse.y"
- { code1(F_MUL_ASG) ; }
- break;
- case 126:
- #line 742 "parse.y"
- { code1(F_DIV_ASG) ; }
- break;
- case 127:
- #line 743 "parse.y"
- { code1(F_MOD_ASG) ; }
- break;
- case 128:
- #line 744 "parse.y"
- { code1(F_POW_ASG) ; }
- break;
- case 129:
- #line 751 "parse.y"
- { code2(_BUILTIN, bi_split) ; }
- break;
- case 130:
- #line 755 "parse.y"
- { yyval.start = yyvsp[-2].start ;
- X check_array(yyvsp[0].stp) ;
- X code_array(yyvsp[0].stp) ;
- X }
- break;
- case 131:
- #line 762 "parse.y"
- { code2(_PUSHI, &fs_shadow) ; }
- break;
- case 132:
- #line 764 "parse.y"
- {
- X if ( yyvsp[-1].start == code_ptr - 2 )
- X {
- X if ( code_ptr[-2].op == _MATCH0 )
- X RE_as_arg() ;
- X else
- X if ( code_ptr[-2].op == _PUSHS )
- X { CELL *cp = ZMALLOC(CELL) ;
- X
- X cp->type = C_STRING ;
- X cp->ptr = code_ptr[-1].ptr ;
- X cast_for_split(cp) ;
- X code_ptr[-2].op = _PUSHC ;
- X code_ptr[-1].ptr = (PTR) cp ;
- X }
- X }
- X }
- break;
- case 133:
- #line 788 "parse.y"
- { yyval.start = yyvsp[-3].start ;
- X code2(_BUILTIN, bi_match) ;
- X }
- break;
- case 134:
- #line 795 "parse.y"
- {
- X if ( yyvsp[0].start == code_ptr - 2 )
- X {
- X if ( yyvsp[0].start->op == _MATCH0 ) RE_as_arg() ;
- X else
- X if ( yyvsp[0].start->op == _PUSHS )
- X { CELL *cp = ZMALLOC(CELL) ;
- X
- X cp->type = C_STRING ;
- X cp->ptr = yyvsp[0].start[1].ptr ;
- X cast_to_RE(cp) ;
- X yyvsp[0].start->op = _PUSHC ;
- X yyvsp[0].start[1].ptr = (PTR) cp ;
- X }
- X }
- X }
- break;
- case 135:
- #line 816 "parse.y"
- { yyval.start = code_ptr ;
- X code1(_EXIT0) ; }
- break;
- case 136:
- #line 819 "parse.y"
- { yyval.start = yyvsp[-1].start ; code1(_EXIT) ; }
- break;
- case 137:
- #line 822 "parse.y"
- { yyval.start = code_ptr ;
- X code1(_RET0) ; }
- break;
- case 138:
- #line 825 "parse.y"
- { yyval.start = yyvsp[-1].start ; code1(_RET) ; }
- break;
- case 139:
- #line 830 "parse.y"
- { yyval.start = code_ptr ;
- X code2(F_PUSHA, &field[0]) ;
- X code1(_PUSHINT) ; code1(0) ;
- X code2(_BUILTIN, bi_getline) ;
- X getline_flag = 0 ;
- X }
- break;
- case 140:
- #line 837 "parse.y"
- { yyval.start = yyvsp[0].start ;
- X code1(_PUSHINT) ; code1(0) ;
- X code2(_BUILTIN, bi_getline) ;
- X getline_flag = 0 ;
- X }
- break;
- case 141:
- #line 843 "parse.y"
- { code1(_PUSHINT) ; code1(F_IN) ;
- X code2(_BUILTIN, bi_getline) ;
- X /* getline_flag already off in yylex() */
- X }
- break;
- case 142:
- #line 848 "parse.y"
- { code2(F_PUSHA, &field[0]) ;
- X code1(_PUSHINT) ; code1(PIPE_IN) ;
- X code2(_BUILTIN, bi_getline) ;
- X }
- break;
- case 143:
- #line 853 "parse.y"
- {
- X code1(_PUSHINT) ; code1(PIPE_IN) ;
- X code2(_BUILTIN, bi_getline) ;
- X }
- break;
- case 144:
- #line 859 "parse.y"
- { getline_flag = 1 ; }
- break;
- case 147:
- #line 864 "parse.y"
- { yyval.start = code_ptr ;
- X code2(F_PUSHA, field+0) ;
- X }
- break;
- case 148:
- #line 868 "parse.y"
- { yyval.start = yyvsp[-1].start ; }
- break;
- case 149:
- #line 876 "parse.y"
- {
- X if ( yyvsp[0].start - yyvsp[-1].start == 2 && yyvsp[-1].start->op == _PUSHS )
- X { /* cast from STRING to REPL at compile time */
- X CELL *cp = ZMALLOC(CELL) ;
- X cp->type = C_STRING ;
- X cp->ptr = yyvsp[-1].start[1].ptr ;
- X cast_to_REPL(cp) ;
- X yyvsp[-1].start->op = _PUSHC ;
- X yyvsp[-1].start[1].ptr = (PTR) cp ;
- X }
- X code2(_BUILTIN, yyvsp[-5].fp) ;
- X yyval.start = yyvsp[-3].start ;
- X }
- break;
- case 150:
- #line 891 "parse.y"
- { yyval.fp = bi_sub ; }
- break;
- case 151:
- #line 892 "parse.y"
- { yyval.fp = bi_gsub ; }
- break;
- case 152:
- #line 897 "parse.y"
- { yyval.start = code_ptr ;
- X code2(F_PUSHA, &field[0]) ;
- X }
- break;
- case 153:
- #line 902 "parse.y"
- { yyval.start = yyvsp[-1].start ; }
- break;
- case 154:
- #line 910 "parse.y"
- { resize_fblock(yyvsp[-1].fbp, code_ptr) ;
- X code_ptr = main_code_ptr ;
- X scope = SCOPE_MAIN ;
- X active_funct = (FBLOCK *) 0 ;
- X restore_ids() ;
- X }
- break;
- case 155:
- #line 920 "parse.y"
- { eat_nl() ;
- X scope = SCOPE_FUNCT ;
- X active_funct = yyvsp[-3].fbp ;
- X main_code_ptr = code_ptr ;
- X
- X if ( yyvsp[-3].fbp->nargs = yyvsp[-1].ival )
- X yyvsp[-3].fbp->typev = (char *)
- X memset( zmalloc(yyvsp[-1].ival), ST_LOCAL_NONE, SIZE_T(yyvsp[-1].ival)) ;
- X else yyvsp[-3].fbp->typev = (char *) 0 ;
- X code_ptr = yyvsp[-3].fbp->code =
- X (INST *) zmalloc(PAGE_SZ*sizeof(INST)) ;
- X }
- break;
- case 156:
- #line 935 "parse.y"
- { FBLOCK *fbp ;
- X
- X if ( yyvsp[0].stp->type == ST_NONE )
- X {
- X yyvsp[0].stp->type = ST_FUNCT ;
- X fbp = yyvsp[0].stp->stval.fbp =
- X (FBLOCK *) zmalloc(sizeof(FBLOCK)) ;
- X fbp->name = yyvsp[0].stp->name ;
- X }
- X else
- X {
- X type_error( yyvsp[0].stp ) ;
- X
- X /* this FBLOCK will not be put in
- X the symbol table */
- X fbp = (FBLOCK*) zmalloc(sizeof(FBLOCK)) ;
- X fbp->name = "" ;
- X }
- X yyval.fbp = fbp ;
- X }
- break;
- case 157:
- #line 957 "parse.y"
- { yyval.fbp = yyvsp[0].fbp ;
- X if ( yyvsp[0].fbp->code )
- X compile_error("redefinition of %s" , yyvsp[0].fbp->name) ;
- X }
- break;
- case 158:
- #line 963 "parse.y"
- { yyval.ival = 0 ; }
- break;
- case 160:
- #line 968 "parse.y"
- { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
- X yyvsp[0].stp->type = ST_LOCAL_NONE ;
- X yyvsp[0].stp->offset = 0 ;
- X yyval.ival = 1 ;
- X }
- break;
- case 161:
- #line 974 "parse.y"
- { if ( is_local(yyvsp[0].stp) )
- X compile_error("%s is duplicated in argument list",
- X yyvsp[0].stp->name) ;
- X else
- X { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
- X yyvsp[0].stp->type = ST_LOCAL_NONE ;
- X yyvsp[0].stp->offset = yyvsp[-2].ival ;
- X yyval.ival = yyvsp[-2].ival + 1 ;
- X }
- X }
- break;
- case 162:
- #line 987 "parse.y"
- { /* we may have to recover from a bungled function
- X definition */
- X
- X /* can have local ids, before code scope
- X changes */
- X restore_ids() ;
- X
- X if (scope == SCOPE_FUNCT)
- X { scope = SCOPE_MAIN ;
- X active_funct = (FBLOCK*) 0 ;
- X }
- X
- X code_ptr = main_code_ptr ;
- X }
- break;
- case 163:
- #line 1006 "parse.y"
- { yyval.start = yyvsp[-1].start ;
- X code2(_CALL, yyvsp[-2].fbp) ;
- X
- X if ( yyvsp[0].ca_p ) code1(yyvsp[0].ca_p->arg_num+1) ;
- X else code1(0) ;
- X
- X check_fcall(yyvsp[-2].fbp, scope, active_funct,
- X yyvsp[0].ca_p, token_lineno) ;
- X }
- break;
- case 164:
- #line 1018 "parse.y"
- { yyval.ca_p = (CA_REC *) 0 ; }
- break;
- case 165:
- #line 1020 "parse.y"
- { yyval.ca_p = yyvsp[0].ca_p ;
- X yyval.ca_p->link = yyvsp[-1].ca_p ;
- X yyval.ca_p->arg_num = yyvsp[-1].ca_p ? yyvsp[-1].ca_p->arg_num+1 : 0 ;
- X }
- break;
- case 166:
- #line 1035 "parse.y"
- { yyval.ca_p = (CA_REC *) 0 ; }
- break;
- case 167:
- #line 1037 "parse.y"
- { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
- X yyval.ca_p->link = yyvsp[-2].ca_p ;
- X yyval.ca_p->type = CA_EXPR ;
- X yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
- X }
- break;
- case 168:
- #line 1043 "parse.y"
- { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
- X yyval.ca_p->link = yyvsp[-2].ca_p ;
- X yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
- X
- X code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
- X }
- break;
- case 169:
- #line 1052 "parse.y"
- { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
- X yyval.ca_p->type = CA_EXPR ;
- X }
- break;
- case 170:
- #line 1057 "parse.y"
- { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
- X code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
- X }
- break;
- #line 2522 "y.tab.c"
- X }
- X yyssp -= yym;
- X yystate = *yyssp;
- X yyvsp -= yym;
- X yym = yylhs[yyn];
- X if (yystate == 0 && yym == 0)
- X {
- #if YYDEBUG
- X if (yydebug)
- X printf("yydebug: after reduction, shifting from state 0 to\
- X state %d\n", YYFINAL);
- #endif
- X yystate = YYFINAL;
- X *++yyssp = YYFINAL;
- X *++yyvsp = yyval;
- X if (yychar < 0)
- X {
- X if ((yychar = YYLEX()) < 0) yychar = 0;
- #if YYDEBUG
- X if (yydebug)
- X {
- X yys = 0;
- X if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- X if (!yys) yys = "illegal-symbol";
- X printf("yydebug: state %d, reading %d (%s)\n",
- X YYFINAL, yychar, yys);
- X }
- #endif
- X }
- X if (yychar == 0) goto yyaccept;
- X goto yyloop;
- X }
- X if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- X yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- X yystate = yytable[yyn];
- X else
- X yystate = yydgoto[yym];
- #if YYDEBUG
- X if (yydebug)
- X printf("yydebug: after reduction, shifting from state %d \
- to state %d\n", *yyssp, yystate);
- #endif
- X if (yyssp >= yyss + yystacksize - 1)
- X {
- X goto yyoverflow;
- X }
- X *++yyssp = yystate;
- X *++yyvsp = yyval;
- X goto yyloop;
- yyoverflow:
- X yyerror("yacc stack overflow");
- yyabort:
- X return (1);
- yyaccept:
- X return (0);
- }
- X
- /********************************************
- parse2.xc
- copyright 1991, Michael D. Brennan
- X
- This is a source file for mawk, an implementation of
- the AWK programming language.
- X
- Mawk is distributed without warranty under the terms of
- the GNU General Public License, version 2, 1991.
- ********************************************/
- X
- /* $Log: parse.c,v $
- X * Revision 1.6 1992/08/27 04:12:49 mike
- X * *** empty log message ***
- X *
- Revision 5.1 1991/12/05 07:52:38 brennan
- 1.1 pre-release
- X
- */
- X
- /* If using Berkeley yacc, we can put the parser table
- X memory to the zmalloc pool. This is kind of ugly and
- X with paged vm probably a nop, but for DOS and MINIX and ??
- X it frees a considerably amount of memory.
- X
- X This file is part of parse.c via
- X cat y.tab.c parse2.xc > parse.c
- */
- X
- static struct yacc_mem yacc_mem[] =
- {
- 0 , 0 , /* don't remove this */
- X
- #ifdef YYBYACC
- (PTR) yycheck, sizeof(yycheck)/ZBLOCKSZ,
- (PTR) yytable, sizeof(yytable)/ZBLOCKSZ,
- #ifndef YYXBYACC /* with xbyacc these are storage auto */
- (PTR) yyvs , sizeof(yyvs)/ZBLOCKSZ,
- (PTR) yyss, sizeof(yyss)/ZBLOCKSZ,
- #endif
- (PTR) yydefred, sizeof(yydefred)/ZBLOCKSZ,
- (PTR) yydgoto, sizeof(yydgoto)/ZBLOCKSZ,
- (PTR) yygindex, sizeof(yygindex)/ZBLOCKSZ,
- (PTR) yylen, sizeof(yylen)/ZBLOCKSZ,
- (PTR) yylhs, sizeof(yylhs)/ZBLOCKSZ,
- (PTR) yyrindex, sizeof(yyrindex)/ZBLOCKSZ,
- (PTR) yysindex, sizeof(yysindex)/ZBLOCKSZ,
- #endif
- X
- 0,0 } ;
- X
- struct yacc_mem *yacc_memp = yacc_mem ;
- X
- SHAR_EOF
- echo 'File Xparse.c is complete' &&
- chmod 0644 Xparse.c ||
- echo 'restore of Xparse.c failed'
- Wc_c="`wc -c < 'Xparse.c'`"
- test 91455 -eq "$Wc_c" ||
- echo 'Xparse.c: original size 91455, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= Xparse.h ==============
- if test -f 'Xparse.h' -a X"$1" != X"-c"; then
- echo 'x - skipping Xparse.h (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Xparse.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Xparse.h' &&
- #define UNEXPECTED 257
- #define BAD_DECIMAL 258
- #define NL 259
- #define SEMI_COLON 260
- #define LBRACE 261
- #define RBRACE 262
- #define LBOX 263
- #define RBOX 264
- #define COMMA 265
- #define IO_OUT 266
- #define ASSIGN 267
- #define ADD_ASG 268
- #define SUB_ASG 269
- #define MUL_ASG 270
- #define DIV_ASG 271
- #define MOD_ASG 272
- #define POW_ASG 273
- #define QMARK 274
- #define COLON 275
- #define OR 276
- #define AND 277
- #define IN 278
- #define MATCH 279
- #define EQ 280
- #define NEQ 281
- #define LT 282
- #define LTE 283
- #define GT 284
- #define GTE 285
- #define CAT 286
- #define GETLINE 287
- #define PLUS 288
- #define MINUS 289
- #define MUL 290
- #define DIV 291
- #define MOD 292
- #define NOT 293
- #define UMINUS 294
- #define IO_IN 295
- #define PIPE 296
- #define POW 297
- #define INC_or_DEC 298
- #define DOLLAR 299
- #define FIELD 300
- #define LPAREN 301
- #define RPAREN 302
- #define DOUBLE 303
- #define STRING_ 304
- #define RE 305
- #define ID 306
- #define D_ID 307
- #define FUNCT_ID 308
- #define BUILTIN 309
- #define LENGTH 310
- #define PRINT 311
- #define PRINTF 312
- #define SPLIT 313
- #define MATCH_FUNC 314
- #define SUB 315
- #define GSUB 316
- #define DO 317
- #define WHILE 318
- #define FOR 319
- #define BREAK 320
- #define CONTINUE 321
- #define IF 322
- #define ELSE 323
- #define DELETE 324
- #define BEGIN 325
- #define END 326
- #define EXIT 327
- #define NEXT 328
- #define RETURN 329
- #define FUNCTION 330
- typedef union{
- CELL *cp ;
- SYMTAB *stp ;
- INST *start ; /* code starting address */
- PF_CP fp ; /* ptr to a (print/printf) or (sub/gsub) function */
- BI_REC *bip ; /* ptr to info about a builtin */
- FBLOCK *fbp ; /* ptr to a function block */
- ARG2_REC *arg2p ;
- CA_REC *ca_p ;
- int ival ;
- PTR ptr ;
- } YYSTYPE;
- extern YYSTYPE yylval;
- SHAR_EOF
- chmod 0644 Xparse.h ||
- echo 'restore of Xparse.h failed'
- Wc_c="`wc -c < 'Xparse.h'`"
- test 1671 -eq "$Wc_c" ||
- echo 'Xparse.h: original size 1671, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- # ============= doc.diff ==============
- if test -f 'doc.diff' -a X"$1" != X"-c"; then
- echo 'x - skipping doc.diff (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting doc.diff (Binary)'
- sed 's/^X//' << 'SHAR_EOF' > _shar_tmp_.tmp &&
- begin 600 doc.diff
- M26YD97@Z(&UA=VLN9&]C"C$Q9#$P"CP@"C$X9#$V"CP@"C0T9#0Q"CP@"C0V
- M8S0S"CP@("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@('-E=',@=&AE(&9I
- M96QD('-E<&%R871O<BP@1E,L('1O(%\(=E\(85\(;%\(=5\(92X*+2TM"CX@
- M("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@("`@<V5T<R!T:&4@9FEE;&0@
- M<V5P87)A=&]R+"!&4RP@=&\@7PAV7PAA7PAL7PAU7PAE+@HT-V$T-2PT-PH^
- M("`@("`@+68@7PAF7PAI7PAL7PAE("`@("`@("!0<F]G<F%M('1E>'0@:7,@
- M<F5A9"`@9G)O;2`@7PAF7PAI7PAL7PAE("!I;G-T96%D("!O9@H^("`@("`@
- M("`@("`@("`@("`@("`@9G)O;2`@=&AE("!C;VUM86YD(&QI;F4N("!-=6QT
- M:7!L92`M9B!O<'1I;VYS"CX@("`@("`@("`@("`@("`@("`@("!A<F4@86QL
- M;W=E9"X*-#DL-3%C-#D*/"`@("`@("UF(%\(9E\(:5\(;%\(92`@("`@(%!R
- M;V=R86T@=&5X="!I<R!R96%D(&9R;VT@7PAF7PAI7PAL7PAE(&EN<W1E860@
- M;V8@(&9R;VT*/"`@("`@("`@("`@("`@("`@("!T:&4@(&-O;6UA;F0@(&QI
- M;F4N("`@375L=&EP;&4@("UF("!O<'1I;VYS(&%R90H\("`@("`@("`@("`@
- M("`@("`@(&%L;&]W960N"BTM+0H^("`@("`@+78@7PAV7PAA7PAR/5\(=E\(
- M85\(;%\(=5\(92`@(&%S<VEG;G,@7PAV7PAA7PAL7PAU7PAE('1O('!R;V=R
- M86T@=F%R:6%B;&4@7PAV7PAA7PAR+@HU,F$U,0H^("`@("`@+2T@("`@("`@
- M("`@("`@:6YD:6-A=&5S('1H92!U;F%M8FEG=6]U<R!E;F0@;V8@;W!T:6]N
- M<RX*-31C-3,L-34*/"`@("`@("UV(%\(=E\(85\(<CU?"'9?"&%?"&Q?"'5?
- M"&4@87-S:6=N<R!?"'9?"&%?"&Q?"'5?"&4@=&\@<')O9W)A;2!V87)I86)L
- M92!?"'9?"&%?"'(N"BTM+0H^("`@("`@5&AE(&%B;W9E(&]P=&EO;G,@=VEL
- M;"!B92!A=F%I;&%B;&4@=VET:"!A;GD@4&]S:7@@(&-O;7!A=&DM"CX@("`@
- M("!B;&4@(&EM<&QE;65N=&%T:6]N("!O9B`@05=++"`@86YD("!I;7!L96UE
- M;G1A=&EO;B`@<W!E8VEF:6,*/B`@("`@(&]P=&EO;G,@87)E('!R969A8V5D
- M('=I=&@@+5<N("!M87=K('!R;W9I9&5S(&9O=7(Z"C4U834W+#4Y"CX@("`@
- M("`M5R!V97)S:6]N("`@("!M87=K('=R:71E<R`@:71S("!V97)S:6]N("!A
- M;F0@(&-O<'ER:6=H="`@=&\*/B`@("`@("`@("`@("`@("`@("`@('-T9&]U
- M="`@86YD("!C;VUP:6QE9"`@;&EM:71S("!T;R`@<W1D97)R(&%N9`H^("`@
- M("`@("`@("`@("`@("`@("`@97AI=',@,"X*-3=D-C`*/"`@("`@("TM("`@
- M("`@("`@("!I;F1I8V%T97,@=&AE('5N86UB:6=U;W5S(&5N9"!O9B!O<'1I
- M;VYS+@HU.6$V,PH^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z
- M($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@("`Q"C8S9#8V"CP@5F5R
- M<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@
- M("`@("`@("`@("`@("`@(#$*-C<L-CED-CD*/"`*/"`*/"`*-S0L-S9C-S0L
- M-S8*/"`@("`@(%1H92!A8F]V92!O<'1I;VYS('=I;&P@8F4@879A:6QA8FQE
- M('=I=&@@86YY(%!O<VEX("!C;VUP871I+0H\("`@("`@8FQE("!I;7!L96UE
- M;G1A=&EO;B`@;V8@($%72RP@(&%N9"`@:6UP;&5M96YT871I;VX@('-P96-I
- M9FEC"CP@("`@("!O<'1I;VYS(&%R92!P<F5F86-E9"!W:71H("U7+B!M87=K
- M('!R;W9I9&5S('1H<F5E.@HM+2T*/B`@("`@("U7(&1U;7`@("`@("`@('=R
- M:71E<R`@86X@(&%S<V5M8FQE<B`@;&EK92`@;&ES=&EN9R`@;V8@('1H90H^
- M("`@("`@("`@("`@("`@("`@("`@:6YT97)N86P@(')E<')E<V5N=&%T:6]N
- M("!O9B`@=&AE("!P<F]G<F%M('1O"CX@("`@("`@("`@("`@("`@("`@("!S
- M=&1E<G(N"C<W83<X+#@Q"CX@("`@("`M5R!S<')I;G1F/5\(;E\(=5\(;2!A
- M9&IU<W1S('1H92!S:7IE(&]F(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*
- M/B`@("`@("`@("`@("`@("`@("`@(&)U9F9E<B`@=&\@(%\(;E\(=5\(;2!B
- M>71E<RX@($UO<F4@=&AA;B!R87)E('5S92!O9@H^("`@("`@("`@("`@("`@
- M("`@("`@=&AI<R!O<'1I;VX@:6YD:6-A=&5S(&UA=VL@<VAO=6QD("!B92`@
- M<F5C;VTM"CX@("`@("`@("`@("`@("`@("`@("!P:6QE9"X*-SDL.#!C.#,*
- M/"`@("`@("U7('9E<G-I;VX@("!M87=K('=R:71E<R!I=',@=F5R<VEO;B!A
- M;F0@8V]P>7)I9VAT('1O('-T9&]U=`H\("`@("`@("`@("`@("`@("`@(&%N
- M9"!C;VUP:6QE9"!L:6UI=',@=&\@<W1D97)R(&%N9"!E>&ET<R`P+@HM+2T*
- M/B`@("`@("U7('!O<VEX7W-P86-E(&9O<F-E<R!M87=K(&YO="!T;R!C;VYS
- M:61E<B`G7&XG('1O(&)E('-P86-E+@HX,BPY-&0X-`H\("`@("`@+5<@9'5M
- M<"`@("`@('=R:71E<R!A;B!A<W-E;6)L97(@;&EK92!L:7-T:6YG(&]F('1H
- M92`@:6YT97(M"CP@("`@("`@("`@("`@("`@("`@;F%L(')E<')E<V5N=&%T
- M:6]N(&]F('1H92!P<F]G<F%M('1O('-T9&5R<BX*/"`*/"`@("`@("U7('-P
- M<FEN=&8]7PAN7PAU7PAM"CP@("`@("`@("`@("`@("`@("`@861J=7-T<R!T
- M:&4@<VEZ92`@;V8@(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*/"`@("`@
- M("`@("`@("`@("`@("!B=69F97(@('1O("!?"&Y?"'5?"&T@(&)Y=&5S+B`@
- M($UO<F4@=&AA;B!R87)E('5S92!O9@H\("`@("`@("`@("`@("`@("`@('1H
- M:7,@;W!T:6]N(&EN9&EC871E<R`@;6%W:R`@<VAO=6QD("!B92`@<F5C;VTM
- M"CP@("`@("`@("`@("`@("`@("`@<&EL960N"CP@"CP@("`@("`M5R!P;W-I
- M>%]S<&%C90H\("`@("`@("`@("`@("`@("`@(&9O<F-E<R!M87=K(&YO="!T
- M;R!C;VYS:61E<B`G7&XG('1O(&)E('-P86-E+@H\(`H\(`HQ,C1A,3$U"CX@
- M("`@("`@("`@(&EF("@@7PAE7PAX7PAP7PAR("D@7PAS7PAT7PAA7PAT7PAE
- M7PAM7PAE7PAN7PAT"C$R-6$Q,3<*/B`@("`@("`@("`@:68@*"!?"&5?"'A?
- M"'!?"'(@*2!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0@96QS92!?"'-?
- M"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0*,3(V83$Q.0H^("`@("`@("`@("!W
- M:&EL92`H(%\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
- M;E\(=`HQ,C=A,3(Q"CX@("`@("`@("`@(&1O(%\(<U\(=%\(85\(=%\(95\(
- M;5\(95\(;E\(="!W:&EL92`H(%\(95\(>%\(<%\(<B`I"C$R.6,Q,C,*/"!6
- M97)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@
- M("`@("`@("`@("`@("`@("`@,@HM+2T*/B`@("`@("`@("`@9F]R("@@7PAO
- M7PAP7PAT7U\(95\(>%\(<%\(<B`[(%\(;U\(<%\(=%]?"&5?"'A?"'!?"'(@
- M.R!?"&]?"'!?"'1?7PAE7PAX7PAP7PAR("D@7PAS7PAT7PAA7PAT7PAE7PAM
- M7PAE7PAN7PAT"C$S-&$Q,CD*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
- M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@,@HQ,S9D
- M,3,P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
- M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,30P9#$S,PH\("`@("`@("`@
- M("!I9B`H(%\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
- M;E\(=`HQ-#)D,3,T"CP@("`@("`@("`@(&EF("@@7PAE7PAX7PAP7PAR("D@
- M7PAS7PAT7PAA7PAT7PAE7PAM7PAE7PAN7PAT(&5L<V4@7PAS7PAT7PAA7PAT
- M7PAE7PAM7PAE7PAN7PAT"C$T-&,Q,S8*/"`@("`@("`@("`@=VAI;&4@*"!?
- M"&5?"'A?"'!?"'(@*2!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0*+2TM
- M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
- M("`@("`@("`@("`@("`@($U!5TLH,2D*,30V9#$S-PH\("`@("`@("`@("!D
- M;R!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0@=VAI;&4@*"!?"&5?"'A?
- M"'!?"'(@*0HQ-#AD,3,X"CP@("`@("`@("`@(&9O<B`H(%\(;U\(<%\(=%]?
- M"&5?"'A?"'!?"'(@.R!?"&]?"'!?"'1?7PAE7PAX7PAP7PAR(#L@7PAO7PAP
- M7PAT7U\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(;E\(
- M=`HQ.3%A,3@R+#$X,PH^("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@
- M='EP:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CX@("`@("!S
- M96-T:6]N(#0I+@HQ.3)A,3@U+#$X-PH^("`@("`@5&AE('1Y<&4@;V8@86X@
- M97AP<F5S<VEO;B!I<R!D971E<FUI;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD
- M"CX@("`@("!A=71O;6%T:6,@='EP92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N
- M965D960N("!&;W(@97AA;7!L92P@=&\*/B`@("`@(&5V86QU871E('1H92!S
- M=&%T96UE;G1S"C$Y,V$Q.#D*/B`@("`@("`@("`@>2`]('@@*R`R("`[("!Z
- M(#T@>"`@(FAE;&QO(@HQ.35C,3DQ"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,
- M87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@(#,*
- M+2TM"CX@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL
- M;"!B92!T>7!E9"!N=6UE<FEC+B`@268@('@*,3DX83$Y-0H^(%9E<G-I;VX@
- M,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@
- M("`@("`@("`@("`S"C(P,F0Q.3@*/"!-05=+*#$I("`@("`@("`@("`@("`@
- M("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR
- M,#8L,C`W8S(P,@H\("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@='EP
- M:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CP@("`@("!S96-T
- M:6]N(#0I+@HM+2T*/B!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@
- M0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR,#DL,C$Q9#(P
- M,PH\("`@("`@5&AE('1Y<&4@;V8@86X@97AP<F5S<VEO;B!I<R!D971E<FUI
- M;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD"CP@("`@("!A=71O;6%T:6,@='EP
- M92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N965D960N("!&;W(@97AA;7!L92P@
- M=&\*/"`@("`@(&5V86QU871E('1H92!S=&%T96UE;G1S"C(Q,V0R,#0*/"`@
- M("`@("`@("`@>2`]('@@*R`R("`[("!Z(#T@>"`@(FAE;&QO(@HR,35D,C`U
- M"CP@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL;"!B
- M92!T>7!E9"!N=6UE<FEC+B`@268@('@*,C,U+#(T,6,R,C4L,C(W"CP@("`@
- M("!I9B!B;W1H(&]P97)A;F1S(&%R92!S=')I;F<@=&AE(&-O;7!A<FES;VX@
- M(&ES("!S=')I;F<N("`@268*/"`@("`@(&5X86-T;'D@(&]N92!O<&5R86YD
- M(&ES('-T<FEN9R!A;F0@869T97(@=')I;6UI;F<@<W!A8V5S(&%N9`H\("`@
- M("`@=&%B<R!F<F]M("!T:&4@(&9R;VYT("!A;F0@(&)A8VL@('1H92`@<F5M
- M86EN:6YG("!S=')I;F<@(&ES"CP@("`@("!E;G1I<F5L>2`@;G5M97)I8R`@
- M:6X@(&9O<FTL('1H96X@=&AE('-T<FEN9R!I<R!C;VYV97)T960@=&\*/"`@
- M("`@(&YU;6)E<B!A;F0@=&AE(&-O;7!A<FES;VX@:7,@;G5M97)I8SL@;W1H
- M97)W:7-E+"!T:&4@;G5M97)I8PH\("`@("`@;W!E<F%N9"!I<R!C;VYV97)T
- M960@=&\@<W1R:6YG(&%N9"!T:&4@8V]M<&%R:7-O;B!I<R!S=')I;F<N"CP@
- M("`@("!4:&4@<F5S=6QT(&]F(&$@8V]M<&%R:7-O;B!I<R!N=6UE<FEC+"`P
- M(&]R(#$N"BTM+0H^("`@("`@:68@8F]T:"!O<&5R86YD<R!A<F4@<W1R:6YG
- M('1H92!C;VUP87)I<V]N(&ES('-T<FEN9SL@:68@;VYE"CX@("`@("!O<&5R
- M86YD("!I<R`@<W1R:6YG+"!T:&4@;F]N+7-T<FEN9R!O<&5R86YD(&ES(&-O
- M;G9E<G1E9"!A;F0*/B`@("`@('1H92!C;VUP87)I<V]N(&ES('-T<FEN9RX@
- M(%1H92!R97-U;'0@:7,@;G5M97)I8RP@,2!O<B`P+@HR-3=A,C0T+#(T-0H^
- M("`@("`@<F5P;&%C:6YG('X@=VET:"!T:&4@(FYO="!M871C:"(@;W!E<F%T
- M;W(L("%^("P@<F5V97)S97,@=&AE"CX@("`@("!M96%N:6YG+B`@07,@('!A
- M='1E<FXM86-T:6]N('!A:7)S+`HR-3AA,C0W"CX@("`@("`@("`@("]?"'(O
- M('L@7PAA7PAC7PAT7PAI7PAO7PAN('T@("!A;F0@("`D,"!^("]?"'(O('L@
- M7PAA7PAC7PAT7PAI7PAO7PAN('T*,C4Y83(T.2PR-30*/B`@("`@(&%R92!T
- M:&4@<V%M92P@86YD(&9O<B!E86-H("!I;G!U="`@<F5C;W)D("!T:&%T("!M
- M871C:&5S("!?"'(L"CX@("`@("!?"&%?"&-?"'1?"&E?"&]?"&X@(&ES(&5X
- M96-U=&5D+B`@26X@9F%C="P@+U\(<B\@:7,@86X@05=+(&5X<')E<W-I;VX@
- M=&AA=`H^("`@("`@:7,@97%U:79A;&5N="!T;R`H)#`@?B`O7PAR+RD@(&%N
- M>7=H97)E("!E>&-E<'0@('=H96X@(&]N("!T:&4*/B`@("`@(')I9VAT('-I
- M9&4@;V8@82!M871C:"!O<&5R871O<B!O<B!P87-S960@87,@86X@87)G=6UE
- M;G0@=&\@80H^("`@("`@8G5I;'0M:6X@9G5N8W1I;VX@=&AA="!E>'!E8W1S
- M(&$@(')E9W5L87(@(&5X<')E<W-I;VX@(&%R9W4M"CX@("`@("!M96YT+@HR
- M-C%C,C4V+#(U-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
- M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`T"BTM+0H^("`@("`@
- M05=+('5S97,@97AT96YD960@<F5G=6QA<B!E>'!R97-S:6]N<R!A<R!W:71H
- M(%\(95\(9U\(<E\(95\(<"@Q*2X@(%1H90H^("`@("`@<F5G=6QA<B`@97AP
- M<F5S<VEO;B!M971A8VAA<F%C=&5R<RP@:2YE+BP@=&AO<V4@=VET:"!S<&5C
- M:6%L"C(V-&$R-C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
- M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@-`HR-CAD,C8T"CP@
- M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
- M("`@("`@("`@("`@($U!5TLH,2D*,C<R+#(W,V,R-C@*/"`@("`@(')E<&QA
- M8VEN9R!^('=I=&@@=&AE(")N;W0@;6%T8V@B(&]P97)A=&]R+"`A?B`L(')E
- M=F5R<V5S('1H90H\("`@("`@;65A;FEN9RX@($%S("!P871T97)N+6%C=&EO
- M;B!P86ER<RP*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52
- M($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,C<U9#(V.0H\
- M("`@("`@("`@("`O7PAR+R#`@?B`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]"C(W-RPR.#)D
- M,C<P"CP@("`@("!A<F4@=&AE('-A;64L(&%N9"!F;W(@96%C:"`@:6YP=70@
- M(')E8V]R9"`@=&AA="`@;6%T8VAE<R`@7PAR+`H\("`@("`@7PAA7PAC7PAT
- M7PAI7PAO7PAN("!I<R!E>&5C=71E9"X@($EN(&9A8W0L("]?"'(O(&ES(&%N
- M($%72R!E>'!R97-S:6]N('1H870*/"`@("`@(&ES(&5Q=6EV86QE;G0@=&\@
- M*"0P('X@+U\(<B\I("!A;GEW:&5R92`@97AC97!T("!W:&5N("!O;B`@=&AE
- M"CP@("`@("!R:6=H="!S:61E(&]F(&$@;6%T8V@@;W!E<F%T;W(@;W(@<&%S
- M<V5D(&%S(&%N(&%R9W5M96YT('1O(&$*/"`@("`@(&)U:6QT+6EN(&9U;F-T
- M:6]N('1H870@97AP96-T<R!A("!R96=U;&%R("!E>'!R97-S:6]N("!A<F=U
- M+0H\("`@("`@;65N="X*,C@T+#(X-60R-S$*/"`@("`@($%72R!U<V5S(&5X
- M=&5N9&5D(')E9W5L87(@97AP<F5S<VEO;G,@87,@=VET:"!?"&5?"&=?"')?
- M"&5?"'`H,2DN("!4:&4*/"`@("`@(')E9W5L87(@(&5X<')E<W-I;VX@;65T
- M86-H87)A8W1E<G,L(&DN92XL('1H;W-E('=I=&@@<W!E8VEA;`HR.31C,C@P
- M"CP@("`@("`@("`@(%Q?"&,@("`@("`@("`@(&UA=&-H97,@82!C:&%R86-T
- M97(@9&5F:6YE9"`@8GD@('1H92`@<V%M90HM+2T*/B`@("`@("`@("`@(EQ?
- M"&,B("`@("`@("`@;6%T8VAE<R!A(&-H87)A8W1E<B!D969I;F5D("!B>2`@
- M=&AE("!S86UE"C,Q-2PS,39C,S`Q+#,P,@H\("`@("`@("`@("!?"'(Q7PAR
- M,B!M871C:&5S(%\(<C$@9F]L;&]W960@:6UM961I871E;'D@8GD@7PAR,B`@
- M*&-O;F-A=&5N82T*/"`@("`@("`@("`@("`@("!T:6]N*2X*+2TM"CX@("`@
- M("`@("`@(%\(<C%?"'(R("`@("`@("`@;6%T8VAE<R`@7PAR,2`@9F]L;&]W
- M960@(&EM;65D:6%T96QY("!B>2`@7PAR,@H^("`@("`@("`@("`@("`@("`@
- M("`@("`@*&-O;F-A=&5N871I;VXI+@HS,3@L,S$Y8S,P-`H\("`@("`@("`@
- M("!?"'(Q('P@7PAR,@H\("`@("`@("`@("`@("`@(&UA=&-H97,@7PAR,2!O
- M<B!?"'(R("AA;'1E<FYA=&EO;BDN"BTM+0H^("`@("`@("`@("!?"'(Q('P@
- M7PAR,B`@("`@(&UA=&-H97,@7PAR,2!O<B!?"'(R("AA;'1E<FYA=&EO;BDN
- M"C,R,6,S,#8*/"`@("`@("`@("`@7PAR*B`@(&UA=&-H97,@7PAR(')E<&5A
- M=&5D('IE<F\@;W(@;6]R92!T:6UE<RX*+2TM"CX@("`@("`@("`@(%\(<BH@
- M("`@("`@("`@(&UA=&-H97,@7PAR(')E<&5A=&5D('IE<F\@;W(@;6]R92!T
- M:6UE<RX*,S(S8S,P.`H\("`@("`@("`@("!?"'(K("`@;6%T8VAE<R!?"'(@
- M<F5P96%T960@;VYE(&]R(&UO<F4@=&EM97,N"BTM+0H^("`@("`@("`@("!?
- M"'(K("`@("`@("`@("!M871C:&5S(%\(<B!R97!E871E9"!O;F4@;W(@;6]R
- M92!T:6UE<RX*,S(T83,Q,`H^("`@("`@("`@("!?"'(_("`@("`@("`@("!M
- M871C:&5S(%\(<B!Z97)O(&]R(&]N8V4N"C,R-6$S,3(*/B`@("`@("`@("`@
- M*%\(<BD@("`@("`@("`@;6%T8VAE<R!?"'(L('!R;W9I9&EN9R!G<F]U<&EN
- M9RX*,S(W8S,Q-"PS,34*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA
- M;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`@-0HM+2T*/B`@
- M("`@(%1H92!I;F-R96%S:6YG('!R96-E9&5N8V4@;V8@;W!E<F%T;W)S(&ES
- M(&%L=&5R;F%T:6]N+"`@8V]N+0H^("`@("`@8V%T96YA=&EO;B!A;F0@=6YA
- M<GD@*"HL("L@;W(@/RDN"C,R.&$S,3<*/B`@("`@($9O<B!E>&%M<&QE+`HS
- M,CEA,S$Y+#,R,`H^("`@("`@("`@("`O7EM?82UZ02U:75M?82UZ02U:,"TY
- M72HD+R`@86YD"CX@("`@("`@("`@("]>6RTK73\H6S`M.5TK7"X_?%PN6S`M
- M.5TI6S`M.5TJ*%ME15U;+2M=/ULP+3E=*RD_)"\*,S,P83,R,BPS,C,*/B`@
- M("`@(&%R92!M871C:&5D(&)Y($%72R!I9&5N=&EF:65R<R`@86YD("!!5TL@
- M(&YU;65R:6,@(&-O;G-T86YT<PH^("`@("`@<F5S<&5C=&EV96QY+B`@("!.
- M;W1E("!T:&%T("`N("!H87,@('1O("!B92`@97-C87!E9"`@=&\@(&)E"C,S
- M-&,S,C<*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.
- M1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HM+2T*/B!697)S:6]N(#$N
- M,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@
- M("`@("`@("`@-0HS,SAD,S,P"CP@("`@("`@("`@(%\(<C\@("!M871C:&5S
- M(%\(<B!Z97)O(&]R(&]N8V4N"C,T,&0S,S$*/"`@("`@("`@("`@*%\(<BD@
- M(&UA=&-H97,@7PAR+"!P<F]V:61I;F<@9W)O=7!I;F<N"C,T,BPS-#-D,S,R
- M"CP@("`@("!4:&4@:6YC<F5A<VEN9R!P<F5C961E;F-E(&]F(&]P97)A=&]R
- M<R!I<R!A;'1E<FYA=&EO;BP@(&-O;BT*/"`@("`@(&-A=&5N871I;VX@86YD
- M('5N87)Y("@J+"`K(&]R(#\I+@HS-#5C,S,T"CP@("`@("!&;W(@97AA;7!L
- M92P*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
- M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,S0W+#,T.&0S,S4*/"`@
- M("`@("`@("`@+UY;7V$M>D$M6EU;7V$M>D$M6C`M.5TJ)"\@(&%N9`H\("`@
- M("`@("`@("`O7ELM*UT_*%LP+3E=*UPN/WQ<+ELP+3E=*5LP+3E=*BA;945=
- M6RTK73];,"TY72LI/R0O"C,U,"PS-3-D,S,V"CP@("`@("!A<F4@;6%T8VAE
- M9"!B>2!!5TL@:61E;G1I9FEE<G,@(&%N9"`@05=+("!N=6UE<FEC("!C;VYS
- M=&%N=',*/"`@("`@(')E<W!E8W1I=F5L>2X@("!.;W1E("!T:&%T("`N(&AA
- M<R!T;R!B92!E<V-A<&5D('1O(&)E(')E8V]G+0H\("`@("`@;FEZ960@87,@
- M82!D96-I;6%L('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R
- M92`@;F]T"CP@("`@("!S<&5C:6%L(&EN<VED92!C:&%R86-T97(@8VQA<W-E
- M<RX*,S4T83,S."PS-#`*/B`@("`@(')E8V]G;FEZ960@87,@82!D96-I;6%L
- M('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R90H^("`@("`@
- M;F]T('-P96-I86P@:6YS:61E(&-H87)A8W1E<B!C;&%S<V5S+@H^(`HS.#EA
- M,S<V"CX@("`@("!S=')I;F<N("!&;W(@97AA;7!L92P*,SDP83,W."PS.#`*
- M/B`@("`@("`@("`@96-H;R`R-"`R-$4@?`H^("`@("`@("`@("!M87=K("=[
- M('!R:6YT*"0Q/C$P,"P@)#$^(C$P,"(L("0R/C$P,"P@)#(^(C$P,"(I('TG
- M"CX@("`@("`@("`@(#`@,2`Q(#$*,SDQ83,X,BPS.#0*/B`@("`@("0P(&%N
- M9"`D,B!A<F4@<W1R:6YG(&%N9"`D,2!I<R!N=6UB97(@86YD('-T<FEN9RX@
- M(%1H92!F:7)S=`H^("`@("`@8V]M<&%R:7-O;B`@:7,@(&YU;65R:6,L("!T
- M:&4@<V5C;VYD(&ES('-T<FEN9RP@=&AE('1H:7)D(&ES"CX@("`@("!S=')I
- M;F<@*#$P,"!I<R!C;VYV97)T960@=&\@(C$P,"(I+"!A;F0@=&AE(&QA<W0@
- M:7,@<W1R:6YG+@HS.3-C,S@V+#,X.0H\(%9E<G-I;VX@,2XQ("`@("`@("`@
- M3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`V
- M"BTM+0H^("`@-2X@17AP<F5S<VEO;G,@86YD(&]P97)A=&]R<PH^("`@("`@
- M5&AE(&5X<')E<W-I;VX@<WEN=&%X(&ES('-I;6EL87(@=&\@0RX@(%!R:6UA
- M<GD@(&5X<')E<W-I;VYS"CX@("`@("!A<F4@(&YU;65R:6,@8V]N<W1A;G1S
- M+"!S=')I;F<@8V]N<W1A;G1S+"!V87)I86)L97,L(&9I96QD<RP*/B`@("`@
- M(&%R<F%Y<R!A;F0@9G5N8W1I;VYS+B!4:&4@:61E;G1I9FEE<B!F;W(@82`@
- M=F%R:6%B;&4L("!A<G)A>0HS.39A,SDS"CX@5F5R<VEO;B`Q+C$N,B`@("`@
- M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
- M(#8*-#`P9#,Y-@H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
- M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C0P-&,T,#`*/"`@
- M("`@('-T<FEN9RX@($9O<B!E>&%M<&QE+`HM+2T*/B!-05=+*#$I("`@("`@
- M("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@
- M34%72R@Q*0HT,#8L-#`X9#0P,0H\("`@("`@("`@("!E8VAO(#(T(#(T12!\
- M"CP@("`@("`@("`@(&UA=VL@)WL@<')I;G0H)#$^,3`P+"`D,3XB,3`P(BP@
- M)#(^,3`P+"`D,CXB,3`P(BD@?2<*/"`@("`@("`@("`@,"`P(#$@,0HT,3`L
- M-#$S9#0P,@H\("`@("`@)#`@86YD("0R(&%R92!S=')I;F<@86YD("0Q(&ES
- M(&YU;6)E<B!A;F0@<W1R:6YG+B`@5&AE(&9I<G-T"CP@("`@("!A;F0@('-E
- M8V]N9"`@8V]M<&%R:7-O;G,@(&%R92`@;G5M97)I8R`@86YD('1H92!L87-T
- M('1W;R!A<F4*/"`@("`@('-T<FEN9RX@($EN('1H92!S96-O;F0@(C$P,"(@
- M:7,@8V]N=F5R=&5D('1O(#$P,"P@86YD(&EN('1H90H\("`@("`@=&AI<F0@
- M,3`P(&ES(&-O;G9E<G1E9"!T;R`B,3`P(BX*-#$U+#0Q.&0T,#,*/"`@(#4N
- M($5X<')E<W-I;VYS(&%N9"!O<&5R871O<G,*/"`@("`@(%1H92!E>'!R97-S
- M:6]N('-Y;G1A>"!I<R!S:6UI;&%R('1O($,N("!0<FEM87)Y("!E>'!R97-S
- M:6]N<PH\("`@("`@87)E("!N=6UE<FEC(&-O;G-T86YT<RP@<W1R:6YG(&-O
- M;G-T86YT<RP@=F%R:6%B;&5S+"!F:65L9',L"CP@("`@("!A<G)A>7,@86YD
- M(&9U;F-T:6]N<RX@5&AE(&ED96YT:69I97(@9F]R(&$@('9A<FEA8FQE+"`@
- M87)R87D*-#4V830T,BPT-#,*/B`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T
- M:&4@9F]R('-T871E;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H^("`@
- M("`@:6YD97@@;V8@86X@87)R87DN"C0U-V$T-#4*/B`@("`@("`@("`@9F]R
- M("@@7PAV7PAA7PAR(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(
- M=%\(95\(;5\(95\(;E\(=`HT-3EC-#0W+#0T.0H\(%9E<G-I;VX@,2XQ("`@
- M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
- M("`@("`W"BTM+0H^("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C:"!I;F1E
- M>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(=%\(85\(
- M=%\(95\(;5\(95\(;E\(="X@(%1H90H^("`@("`@;W)D97(@('1H870@(%\(
- M=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@7PAA7PAR
- M7PAR7PAA7PAY(&ES(&YO=`H^("`@("`@9&5F:6YE9"X*-#8P830U,2PT-3(*
- M/B`@("`@(%1H92!S=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;
- M7PAE7PAX7PAP7PAR72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?
- M"'!?"')=(&YO="!T;PH^("`@("`@97AI<W0N"C0V,6$T-30L-#4U"CX@("`@
- M("!-=6QT:61I;65N<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I
- M=&@@(&-O;F-A=&5N871I;VX*/B`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN
- M('9A<FEA8FQE(%-50E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?
- M"'(Q+%\(95\(>%\(<%\(<C)=(&ES"C0V-&$T-3D*/B!697)S:6]N(#$N,2XR
- M("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@
- M("`@("`@-PHT-C9D-#8P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
- M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*-#<P+#0W
- M,60T-C,*/"`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T:&4@9F]R('-T871E
- M;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H\("`@("`@:6YD97@@;V8@
- M86X@87)R87DN"C0W,V0T-C0*/"`@("`@("`@("`@9F]R("@@7PAV7PAA7PAR
- M(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
- M;E\(=`HT-S4L-#<W8S0V-@H\("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C
- M:"!I;F1E>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(
- M=%\(85\(=%\(95\(;5\(95\(;E\(="X@(%1H90H\("`@("`@;W)D97(@('1H
- M870@(%\(=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@
- M7PAA7PAR7PAR7PAA7PAY(&ES(&YO=`H\("`@("`@9&5F:6YE9"X*+2TM"CX@
- M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
- M("`@("`@("`@("`@($U!5TLH,2D*-#<Y+#0X,&0T-C<*/"`@("`@(%1H92!S
- M=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;7PAE7PAX7PAP7PAR
- M72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"')=(&YO="!T
- M;PH\("`@("`@97AI<W0N"C0X,BPT.#-C-#8Y"CP@("`@("!-=6QT:61I;65N
- M<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I=&@@(&-O;F-A=&5N
- M871I;VX*/"`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN('9A<FEA8FQE(%-5
- M0E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"'(Q+%\(95\(>%\(
- M<%\(<C)=(&ES"BTM+0H^(`HU,C)A-3`Y+#4Q,`H^("`@("`@("`@("!/4E,@
- M("`@("`@=&5R;6EN871E<R!E86-H(')E8V]R9"!O;B!O=71P=70L(&EN:71I
- M86QL>2`]"CX@("`@("`@("`@("`@("`@("`@("`B7&XB+@HU,C-A-3$R+#4Q
- M,PH^("`@("`@("`@("!23$5.1U1(("`@;&5N9W1H('-E="!B>2!T:&4@;&%S
- M="!C86QL('1O("!T:&4@(&)U:6QT+6EN"CX@("`@("`@("`@("`@("`@("`@
- M("!F=6YC=&EO;BP@;6%T8V@H*2X*-3(U8S4Q-0H\(%9E<G-I;VX@,2XQ("`@
- M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
- M("`@("`X"BTM+0H^("`@("`@("`@("!24R`@("`@("`@:6YP=70@<F5C;W)D
- M('-E<&%R871O<BP@:6YI=&EA;&QY(#T@(EQN(BX*-3(V834Q-PH^("`@("`@
- M("`@("!24U1!4E0@("`@:6YD97@@<V5T(&)Y('1H92!L87-T(&-A;&P@=&\@
- M;6%T8V@H*2X*-3(W834Q.2PU,C`*/B`@("`@("`@("`@4U5"4T50("`@('5S
- M960@=&\@8G5I;&0@;75L=&EP;&4@87)R87D@<W5B<V-R:7!T<RP@:6YI+0H^
- M("`@("`@("`@("`@("`@("`@("`@=&EA;&QY(#T@(EPP,S0B+@HU,S)C-3(U
- M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
- M("`@("`@("`@("`@("`@($U!5TLH,2D*+2TM"CX@5F5R<VEO;B`Q+C$N,B`@
- M("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@
- M("`@(#@*-3,V+#4S-V0U,C@*/"`@("`@("`@("`@3U)3("`@("`@('1E<FUI
- M;F%T97,@96%C:"!R96-O<F0@;VX@;W5T<'5T+"!I;FET:6%L;'D@/0H\("`@
- M("`@("`@("`@("`@("`@("`@(EQN(BX*-3,Y+#4T,&0U,CD*/"`@("`@("`@
- M("`@4DQ%3D=42"`@(&QE;F=T:"!S970@8GD@=&AE(&QA<W0@8V%L;"!T;R`@
- M=&AE("!B=6EL="UI;@H\("`@("`@("`@("`@("`@("`@("`@9G5N8W1I;VXL
- M(&UA=&-H*"DN"C4T,F0U,S`*/"`@("`@("`@("`@4E,@("`@("`@(&EN<'5T
- M(')E8V]R9"!S97!A<F%T;W(L(&EN:71I86QL>2`](")<;B(N"C4T-&,U,S(*
- M/"`@("`@("`@("`@4E-405)4("`@(&EN9&5X('-E="!B>2!T:&4@;&%S="!C
- M86QL('1O(&UA=&-H*"DN"BTM+0H^($U!5TLH,2D@("`@("`@("`@("`@("`@
- M("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C4T
- M-BPU-#=D-3,S"CP@("`@("`@("`@(%-50E-%4"`@("!U<V5D('1O(&)U:6QD
- M(&UU;'1I<&QE(&%R<F%Y('-U8G-C<FEP=',L(&EN:2T*/"`@("`@("`@("`@
- M("`@("`@("`@('1I86QL>2`](")<,#,T(BX*-30X834S-0H^(`HU-C4L-38W
- M8S4U,BPU-3,*/"`@("`@("`@("`@;&5N9W1H*%\(<RD@(&QE;F=T:"@I"CP@
- M("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H(&]F('-T<FEN9R!?
- M"',[('=I=&AO=70@(&%N("!A<F=U+0H\("`@("`@("`@("`@("`@(&UE;G0L
- M(')E='5R;G,@=&AE(&QE;F=T:"!O9B`D,"X*+2TM"CX@("`@("`@("`@(&QE
- M;F=T:"A?"',I"CX@("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H
- M(&]F('-T<FEN9R!?"',N"C4X-V$U-S0L-3<U"CX@("`@("`@("`@("`@("`@
- M86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM7PAA7PAT+B`@(%-E92`@=&AE
- M("!D97-C<FEP=&EO;B`@;V8*/B`@("`@("`@("`@("`@("!P<FEN=&8H*2!B
- M96QO=RX*-3@X834W-RPU-SD*/B`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
- M*2`@<W5B*%\(<BQ?"',I"CX@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
- M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/B`@("`@
- M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HU.#EA-3@Q+#4X-`H^("`@
- M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
- M/B`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
- M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CX@("`@("`@("`@("`@("`@:6YD
- M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
- M92!S=69F:7@*/B`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
- M(%\(:2!I<R!R971U<FYE9"X*-3DQ8S4X-BPU.#<*/"!697)S:6]N(#$N,2`@
- M("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@
- M("`@("`@.0HM+2T*/B`@("`@("`@("`@=&]L;W=E<BA?"',I"CX@("`@("`@
- M("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@7PAS('=I=&@@86QL('5P<&5R
- M(&-A<V4@8VAA<F%C=&5R<PHU.31A-3DQ"CX@5F5R<VEO;B`Q+C$N,B`@("`@
- M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
- M(#D*-3DX9#4Y-`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
- M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C8P,BPV,#-C-3DX
- M"CP@("`@("`@("`@("`@("`@86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM
- M7PAA7PAT+B`@(%-E92`@=&AE("!D97-C<FEP=&EO;B`@;V8*/"`@("`@("`@
- M("`@("`@("!P<FEN=&8H*2!B96QO=RX*+2TM"CX@34%72R@Q*2`@("`@("`@
- M("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!
- M5TLH,2D*-C`U+#8P-V0U.3D*/"`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
- M*2`@<W5B*%\(<BQ?"',I"CP@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
- M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/"`@("`@
- M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HV,#DL-C$R9#8P,`H\("`@
- M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
- M/"`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
- M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CP@("`@("`@("`@("`@("`@:6YD
- M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
- M92!S=69F:7@*/"`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
- M(%\(:2!I<R!R971U<FYE9"X*-C$T+#8Q-60V,#$*/"`@("`@("`@("`@=&]L
- M;W=E<BA?"',I"CP@("`@("`@("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@
- M7PAS('=I=&@@86QL('5P<&5R(&-A<V4@8VAA<F%C=&5R<PHV-30L-C8W9#8S
- M.0H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
- M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$P"CP@"CP@"CP@"CP@
- M"CP@"CP@"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
- M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*-C@Q838U
- M-"PV-C<*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA
- M;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q,`H^(`H^(`H^
- M(`H^(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
- M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C<R
- M,"PW,S-D-S`U"CP@"CP@"CP@"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T
- M(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@,3$*/"`*
- M/"`*/"`*/"`*/"`*/"`*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%53
- M15(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\
- M(`HW-#AA-S(Q+#<S,PH^(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S
- M="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$Q"CX@
- M"CX@"CX@"CX@"CX@"CX@"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
- M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*
- M/B`*-S@W+#<Y.60W-S$*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA
- M<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q,@H\
- M(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@
- M55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@
- M"CP@"C@Q,6,W.#,*/"`@("`@("`@("`@("`@("!R971U<FYS(#`@86YD("!?
- M"$$@(&ES("!U;F-H86YG960N("`@3W1H97)W:7-E+"`@86QL"BTM+0H^("`@
- M("`@("`@("`@("`@(')E='5R;G,@,"!A;F0@7PA!("!I<R`@<V5T("!E;7!T
- M>2X@("!/=&AE<G=I<V4L("!A;&P*.#$S83<X-BPW.3D*/B`*/B`*/B`*/B!6
- M97)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@
- M("`@("`@("`@("`@("`@("`Q,@H^(`H^(`H^(`H^(`H^(`H^(`H^($U!5TLH
- M,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@
- M("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C@U,BPX-C5D.#,W"CP@"CP@"CP@
- M"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y
- M.3(@("`@("`@("`@("`@("`@("`@,3,*/"`*/"`*/"`*/"`*/"`*/"`*/"!-
- M05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@
- M("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\(`HX-SEA.#4R+#@V-0H^(`H^
- M(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q
- M,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$S"CX@"CX@"CX@"CX@"CX@"CX@
- M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
- M("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*/B`*.3$W83DP-"PY,#4*
- M/B`@("`@(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE
- M($5.1"!?"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CX@("`@("!S
- M:61E<F5D(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN
- M7PAS(&%R92!E>&5C=71E9"X*.3$X83DP-RPY,3(*/B`@("`@($EN('1H92!E
- M>&%M<&QE+"!T:&4@87-S:6=N;65N="!V/3$@('1A:V5S("!P;&%C92`@869T
- M97(@('1H90H^("`@("`@0D5'24X@(%\(85\(8U\(=%\(:5\(;U\(;E\(<R`@
- M87)E("!E>&5C=71E9"P@(&%N9"`@=&AE(&1A=&$@<&QA8V5D(&EN('8@:7,*
- M/B`@("`@('1Y<&5D(&YU;6)E<B!A;F0@<W1R:6YG+B`@26YP=70@:7,@=&AE
- M;B!R96%D("!F<F]M("!F:6QE("!!+@H^("`@("`@3VX@(&5N9"`@;V8@9FEL
- M92!!+"!T(&ES('-E="!T;R!T:&4@<W1R:6YG(")H96QL;R(L(&%N9"!"(&ES
- M"CX@("`@("!O<&5N960@9F]R(&EN<'5T+B`@3VX@96YD(&]F(&9I;&4@0BP@
- M('1H92`@14Y$("!?"&%?"&-?"'1?"&E?"&]?"&Y?"',@(&%R90H^("`@("`@
- M97AE8W5T960N"CDQ.6$Y,30L.3$U"CX@("`@("!0<F]G<F%M(&9L;W<@870@
- M=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(;B![7PAA7PAC7PAT7PAI7PAO7PAN
- M?2!L979E;"`@8V%N("!B92`@8VAA;F=E9`H^("`@("`@=VET:"!T:&4*.3(Q
- M8SDQ-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
- M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$T"BTM+0H^("`@("`@("`@("!N
- M97AT("`@86YD"CDR-&$Y,C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
- M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-`HY,CAD
- M.3(T"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
- M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,R+#DS,V,Y,C@*/"`@("`@
- M(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE($5.1"!?
- M"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CP@("`@("!S:61E<F5D
- M(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN7PAS(&%R
- M92!E>&5C=71E9"X*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
- M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,U+#DT
- M,&0Y,CD*/"`@("`@($EN('1H92!E>&%M<&QE+"!T:&4@87-S:6=N;65N="!V
- M/3$@('1A:V5S("!P;&%C92`@869T97(@('1H90H\("`@("`@0D5'24X@(%\(
- M85\(8U\(=%\(:5\(;U\(;E\(<R`@87)E("!E>&5C=71E9"P@(&%N9"`@=&AE
- M(&1A=&$@<&QA8V5D(&EN('8@:7,*/"`@("`@('1Y<&5D(&YU;6)E<B!A;F0@
- M<W1R:6YG+B`@26YP=70@:7,@=&AE;B!R96%D("!F<F]M("!F:6QE("!!+@H\
- M("`@("`@3VX@(&5N9"`@;V8@9FEL92!!+"!T(&ES('-E="!T;R!T:&4@<W1R
- M:6YG(")H96QL;R(L(&%N9"!"(&ES"CP@("`@("!O<&5N960@9F]R(&EN<'5T
- M+B`@3VX@96YD(&]F(&9I;&4@0BP@('1H92`@14Y$("!?"&%?"&-?"'1?"&E?
- M"&]?"&Y?"',@(&%R90H\("`@("`@97AE8W5T960N"CDT,BPY-#-D.3,P"CP@
- M("`@("!0<F]G<F%M(&9L;W<@870@=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(
- M;B#$@?B`O
- M9&5B:71\;&]S<R\@('L@<W5M("T]("0R('T*.3@T83DW,@H^("`@("`@("`@
- M("!%3D0@>R!P<FEN="!S=6T@?0HY.#5A.3<T"CX@("`@("`U+B!S;W)T(&$@
- M9FEL92P@8V]M<&%R:6YG(&%S('-T<FEN9PHY.#=C.3<V+#DW-PH\(%9E<G-I
- M;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@
- M("`@("`@("`@("`@(#$U"BTM+0H^("`@("`@("`@("![(&QI;F5;3E)=(#T@
- M)#`@(B(@?2`@(R!M86ME('-U<F4@;V8@8V]M<&%R:7-O;B!T>7!E"CX@("`@
- M("`@("`@("`@("`@("`@("`@("`@("`C(&EN(&-A<V4@<V]M92!L:6YE<R!L
- M;V]K(&YU;65R:6,*.3@X83DW.2PY.#$*/B`@("`@("`@("`@14Y$('L@(&ES
- M;W)T*&QI;F4L($Y2*0H^("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@/#T@
- M3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/B`@("`@("`@("`@?0HY.#EA.3@S
- M"CX@("`@("`@("`@("-I;G-E<G1I;VX@<V]R="!O9B!!6S$N+FY="CDY,F$Y
- M.#<*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@
- M,3DY,B`@("`@("`@("`@("`@("`@("`Q-0HY.31D.3@X"CP@34%72R@Q*2`@
- M("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@
- M("`@($U!5TLH,2D*.3DX+#DY.60Y.3$*/"`@("`@("`@("`@)#$@?B`O8W)E
- M9&ET?&=A:6XO('L@<W5M("L]("0R('T*/"`@("`@("`@("`@)#$@?B`O9&5B
- M:71\;&]S<R\@('L@<W5M("T]("0R('T*,3`P,60Y.3(*/"`@("`@("`@("`@
- M14Y$('L@<')I;G0@<W5M('T*,3`P,V,Y.30*/"`@("`@(#4N('-O<G0@82!F
- M:6QE+"!C;VUP87)I;F<@87,@<W1R:6YG"BTM+0H^($U!5TLH,2D@("`@("`@
- M("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-
- M05=+*#$I"C$P,#4L,3`P-F0Y.34*/"`@("`@("`@("`@>R!L:6YE6TY272`]
- M("0P("(B('T@(",@;6%K92!S=7)E(&]F(&-O;7!A<FES;VX@='EP90H\("`@
- M("`@("`@("`@("`@("`@("`@("`@("`@(R!I;B!C87-E('-O;64@;&EN97,@
- M;&]O:R!N=6UE<FEC"C$P,#@L,3`Q,&0Y.38*/"`@("`@("`@("`@14Y$('L@
- M(&ES;W)T*&QI;F4L($Y2*0H\("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@
- M/#T@3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/"`@("`@("`@("`@?0HQ,#$R
- M9#DY-PH\("`@("`@("`@("`C:6YS97)T:6]N('-O<G0@;V8@05LQ+BYN70HQ
- M,#(V9#$P,3`*/"`*,3`U,"PQ,#8S9#$P,S,*/"`*/"`*/"`*/"!697)S:6]N
- M(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@
- M("`@("`@("`@("`Q-@H\(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@
- M("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@
- M("!-05=+*#$I"CP@"CP@"CP@"C$P.#!A,3`U,2PQ,#8S"CX@"CX@"CX@5F5R
- M<VEO;B`Q+C$N,B`@("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@
- M("`@("`@("`@("`@("`@,38*/B`*/B`*/B`*/B`*/B`*/B`*/B!-05=+*#$I
- M("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@
- M("`@("`@34%72R@Q*0H^(`H^(`H^(`HQ,3$U+#$Q,CED,3`Y-PH\(`H\(`H\
- M(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
- M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$W"CP@"CP@"CP@"CP@"CP@"CP@
- M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
- M("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*,3$T-V$Q,3$V+#$Q
- M,CD*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
- M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-PH^(`H^(`H^(`H^
- M(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-
- M04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C$Q-C-D
- M,3$T-`H\(`HQ,38U8S$Q-#8*/"`@("`@(%\(95\(9U\(<E\(95\(<"`H,2D*
- M+2TM"CX@("`@("!?"&5?"&=?"')?"&5?"'`H,2D*,3$W.2PQ,3DU9#$Q-3D*
- M/"`*/"`*/"`*/"`*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@
- M8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q.`H\(`H\
- M(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%
- M4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@"CP@
- M"C$R,3!D,3$W,PH\(`HQ,C(R+#$R-3%C,3$X-0H\(`H\(`H\(`H\(`H\(`H\
- M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\
- M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@
- M("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@
- M(#$Y"BTM+0H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU
- ?;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$X"F%S
- `
- end
- SHAR_EOF
- echo 'uudecoding file doc.diff' &&
- uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
- chmod 0644 doc.diff ||
- echo 'restore of doc.diff failed'
- Wc_c="`wc -c < 'doc.diff'`"
- test 22396 -eq "$Wc_c" ||
- echo 'doc.diff: original size 22396, current size' "$Wc_c"
- rm -f _shar_wnt_.tmp
- fi
- rm -f _shar_seq_.tmp
- echo You have unpacked the last part
- exit 0
-
- exit 0 # Just in case...
-